/*
 * @Author: huangtianyang 916072572@qq.com
 * @Date: 2023-04-25 10:35:44
 * @LastEditors: huangtianyang
 * @LastEditTime: 2023-06-07 15:27:16
 * @FilePath: \cxl-admin\src\apis\system\notice.ts
 */
import axios from '../../axios/index'

/**
 *
 * @param content 公告内容
 * @param title 公告标题
 * @param type 类型: 1 系统消息 2 业务消息 3 调价信息 0 其他消息
 * @returns
 */
export const noticeAdd = (obj: { content: string; title: string; type: number }) => {
    return axios({
        method: 'post',
        url: '/api/system/announcement/add',
        data: {
            content: obj.content,
            title: obj.title,
            type: obj.type
        }
    })
}

export interface noticePageInterface {
    current: number //当前页
    size: number //每页数量
    releaseEndTime?: string //查询发布结束时间
    releaseStartTime?: string //查询发布开始时间
    releaseStatus?: string //发布状态 0 待发布 1 已发布 2 已关闭
    title?: string //公告标题
    type?: number //	公告类型
}
/**
 * 查询公告分页
 * @param params
 * @param current: number //当前页
 * @param size: number //每页数量
 * @param releaseEndTime?: string //查询发布结束时间
 * @param releaseStartTime?: string //查询发布开始时间
 * @param releaseStatus?: string //发布状态 0 待发布 1 已发布 2 已关闭
 * @param title?: string //公告标题
 * @param type?: number //	公告类型
 * @returns
 */
export const noticePage = (params: noticePageInterface) => {
    return axios({
        method: 'get',
        url: '/api/system/announcement/list',
        params
    })
}

/**
 * 通过id获取公告详情
 * @param id
 * @returns
 */
export const noticeDetailedById = (id: string) => {
    return axios({
        method: 'get',
        url: `/api/system/announcement/one/${id}`
    })
}

/**
 * 更新公告
 * @param content
 * @param title
 * @param type
 * @param id
 * @returns
 */
export const noticeUpdate = (content: string, title: string, type: number, id: string) => {
    return axios({
        method: 'put',
        url: '/api/system/announcement/update',
        data: {
            content,
            title,
            type,
            id
        }
    })
}

/**
 * 公告发布/撤销
 * @param id
 * @param releaseStatus 发布状态 1 发布 2 关闭 只能传1和2
 * @returns
 */
export const noticeRelease = (id: string, releaseStatus: number) => {
    return axios({
        method: 'put',
        url: '/api/system/announcement/update/release',
        data: {
            id,
            releaseStatus
        }
    })
}

/**
 * 通过id 删除公告消息
 * @param id
 * @returns
 */
export const noticeDelete = (id: string) => {
    return axios({
        method: 'put',
        url: '/api/system/announcement/delete',
        params: { id }
    })
}
